perm filename PASC.PAS[S1,ALS] blob sn#408347 filedate 1979-01-05 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	(*PROGRAM HEADER PAGE*)
C00005 00003	program	CHIOPASC(OUTPUT)
C00007 ENDMK
CāŠ—;
(*PROGRAM HEADER PAGE*)

(*PAS10 OPTIONS*) (* D+,R32,S1300*)			(*X10S1*)

(*							     DEFAULT

D+	DEBUG AND POSTMORTEM DUMP				-
E+	EXTERNAL CALLS TO LEVEL 1 PROCEDURES ALLOWED		-
Fn	FILE OPTION						1
I+	FORTRAN I/O IN EXTERNAL FORTRAN SUBROUTINES		-
L+	OBJECT LISTING						-
Rn	SIZE OF LOW-SEGMENT				(SEE PAS10 MANUAL)
Sn	MAX INSTRUCTIONS PER STATEMENT			       1000
T+	RUNTIME CHECK						+
U+	72 COLUMN FORMAT					-
Xn	HIGHEST REGISTER FOR PARAMETERS				6
*)

(*SLAC PCPASC OPTIONS*) (* B+,D+,M-*)

(*							     DEFAULT

A+	GENERATE 370 OBJECT MODULE				-
A-	GENERATE 370 ASSEMBLY MODULE
B+	BOUNDS CHECKING, BUT ALLOW 'BIG' CHARACTERS		-
C+	EMIT PCODE						+
D+	RUNTIME CHECKING OF POINTER, INDEX, SUBRANGE VALUES	-
E+	FILE IS IN EBCDIC CHARACTER SET				-
F+	SAVE FPR'S ON PROCEDURE/FUNCTION ENTRY			+
K+	ENABLE STATEMENT EXECUTION COUNTING			-
L+	LIST SOURCE PROGRAM					+
M+	72 COLUMN FORMAT					+
P+	DOUBLE-WORD BOUNDARY ALIGNMENT				-
S+	SAVE GPR'S ON PROCEDURE/FUNCTION ENTRY			+
T+	PRINT SYMBOL TABLES (FOR POST-PROCESSOR)		-
U+	GET STATISTICS?? 2ND PARAMETER TO PCODE BGN INSTR.	-
V+	?? 3RD PCODE BGN INSTRUCTION PARAMETER			-
X+	USE ACTUAL PROCEDURE NAMES FOR EXTERNAL REFERENCES	-
X-	GENERATE UNIQUE 8-CHAR NAMES FOR EXTERNAL REFERENCES
*)

(*S1 PCPASC OPTION DIFFERENCES*) (*$A+,B+,D+,L-,M120*)	(*X10S1*)



(*							     DEFAULT

A+	GENERATE S1 ASSEMBLY MODULE				-
A-	GENERATE S1 OBJECT MODULE
*)

(* SLAC/PDP-10 TRANSPORT DEPENDENCIES FLAGGED WITH "XSL10" *)
(* PDP-10/S-1 TRANSPORT DEPENDENCIES FLAGGED WITH "X10S1" *)
program	CHIOPASC(OUTPUT);

const NROW=32; TWONROWM1=63;
      NCOL=71;
      MODULUS=2; MODM1=1;

var I, R, LLIM,	RLIM, MCOL :  integer;
    MODROW :  array [1..TWONROWM1] of 0..MODM1;
    MODCHAR : array [0..MODM1] of char;

begin
MODCHAR[0] := '	';  MODCHAR[1] := '*';
WRITELN(OUTPUT,'CHIOPASC OUTPUT');
for R := 0 to NROW-1 do
    begin
    WRITE(' ');
    LLIM := NROW - R;
    RLIM := NROW + R;
    MODROW[LLIM] := 1;	MODROW[RLIM] :=	1;
    I := LLIM +	2;
    while I <= RLIM-2 do
	begin
	MODROW[I] := (MODROW[I-1]+MODROW[I+1]) mod MODULUS;
	I := I + 2
	end;
    MCOL := (NCOL+1) div 2 + R;
    if MCOL > NCOL then	MCOL :=	NCOL;
    for	I := 1 to MCOL do
	if I < (NCOL+1)	div 2 -	R then WRITE(' ')
	else if	odd((NCOL+1) div 2 - I + R) then WRITE(' ')
	else WRITE(MODCHAR[MODROW[NROW-((NCOL+1) div 2 - I)]]);
    WRITELN(OUTPUT)
    end
end.